A secure communication system provides users of the system with the facility of confidential information transmission over a communication channel, such as a wireless or a wired communication channel, with reduced danger of successful eavesdropping or interception. Message integrity checking, sender/receiver identity authentication, digital signatures are other examples, where a secure communication system is required. A common way of providing a secure information transmission is encryption, i.e. usage of an algorithm for transforming information prior to transmission into a representation that allows retrieval of the contained information only by those possessing special knowledge, which is referred to as a key. Besides security aspects, data encryption provides a way of transmission error detection. Furthermore, digital data encryption is closely related to multiplexing technologies, such as code division multiple access (CDMA), for establishing several digital communication links over the same physical channel.
Digital data encryption is usually achieved using either a symmetric key cryptography or an asymmetric or public key cryptography approach. Symmetric key methods, such as those according to the Data Encryption Standard (DES) or the Advanced Encryption Standard (AES), refer to encryption methods in which both the sender and receiver share the same key for encryption and decryption of information (or in which their keys are different, but related in an easily computable way). Public key methods, such as the Diffie-Hellman method or the RSA-method, use two different but mathematically related keys. Calculation of a private key is computationally infeasible from a public key. Algorithms for creating a public key are often based on computationally complex problems from number theory, such as integer factorization or discrete logarithm calculation.
If two users of a communication system have not agreed to share a symmetric key for secure data transmission in advance, the key must be transmitted over the communication channel before a secure communication has been established. During transmission, the key might be intercepted, copied or changed. Alternatively, the key must be shared using a different way of communication, which inhibits secure real time communication and is a source of additional errors. Asymmetric key systems require a user to generate a random quantity and require a certain amount of information to be exchanged and require suitable computational resources in order to handle the complexity of the algorithm.